home *** CD-ROM | disk | FTP | other *** search
- //=--------------------------------------------------------------------------=
- // CtlHelper.H
- //=--------------------------------------------------------------------------=
- // Copyright 1995 Microsoft Corporation. All Rights Reserved.
- //
- // THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
- // ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
- // THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
- // PARTICULAR PURPOSE.
- //=--------------------------------------------------------------------------=
- //
- // routines to help out our implementation of COleControl.
- //
-
- //=--------------------------------------------------------------------------=
- // these two tables are used to get information on sizes about data types
- // the first is used mostly in persistence, while the second is used for
- // events
- //
- extern const BYTE g_rgcbDataTypeSize [];
- extern const BYTE g_rgcbPromotedDataTypeSize [];
-
-
-
- //=--------------------------------------------------------------------------=
- // misc functions
- //
- short _SpecialKeyState(void);
- void WINAPI CopyAndAddRefObject(void *, const void *, DWORD);
- void WINAPI CopyOleVerb(void *, const void *, DWORD);
-
- HWND CreateReflectWindow(BOOL fVisible, HWND hwndParent, int, int, SIZEL *);
- void CleanupReflection();
-
- // {00D97180-FCF7-11ce-A09E-00AA0062BE57}
- //
- DEFINE_GUID(IID_IControlPrv, 0xd97180, 0xfcf7, 0x11ce, 0xa0, 0x9e, 0x0, 0xaa, 0x0, 0x62, 0xbe, 0x57);
-
- //=--------------------------------------------------------------------------=
- // Data1_
- //=--------------------------------------------------------------------------=
- // the first dword of GUIDs for most of the interesting interfaces. these are
- // used by speed critical versions of QueryInterface
- //
- #define Data1_IControlPrv 0x00d97180
- #define Data1_IAdviseSink 0x0000010f
- #define Data1_IAdviseSink2 0x00000125
- #define Data1_IAPrinter 0x91582580
- #define Data1_IBindCtx 0x0000000e
- #define Data1_IBoundObject 0x9BFBBC00
- #define Data1_IBoundObjectSite 0x9BFBBC01
- #define Data1_ICachedTypeInfo 0xAAEDEB49
- #define Data1_IClassFactory 0x00000001
- #define Data1_IClassFactory2 0xb196b28f
- #define Data1_IConnectionPoint 0xb196b286
- #define Data1_IConnectionPointContainer 0xb196b284
- #define Data1_IControl 0xa7fddba0
- #define Data1_ICreateErrorInfo 0x22f03340
- #define Data1_ICreateTypeInfo 0x00020405
- #define Data1_ICreateTypeLib 0x00020406
- #define Data1_IDataAdviseHolder 0x00000110
- #define Data1_IDataFrame 0x97F254E0
- #define Data1_IDataObject 0x0000010e
- #define Data1_IDispatch 0x00020400
- #define Data1_IDropSource 0x00000121
- #define Data1_IDropTarget 0x00000122
- #define Data1_IEnumCallback 0x00000108
- #define Data1_IEnumConnectionPoints 0xb196b285
- #define Data1_IEnumConnections 0xb196b287
- #define Data1_IEnumFORMATETC 0x00000103
- #define Data1_IEnumGeneric 0x00000106
- #define Data1_IEnumHolder 0x00000107
- #define Data1_IEnumMoniker 0x00000102
- #define Data1_IEnumOLEVERB 0x00000104
- #define Data1_IEnumSTATDATA 0x00000105
- #define Data1_IEnumSTATSTG 0x0000000d
- #define Data1_IEnumString 0x00000101
- #define Data1_IEnumUnknown 0x00000100
- #define Data1_IEnumVARIANT 0x00020404
- #define Data1_IErrorInfo 0x1cf2b120
- #define Data1_IExternalConnection 0x00000019
- #define Data1_IFont 0xbef6e002
- #define Data1_IFontDisp 0xbef6e003
- #define Data1_IFormExpert 0x5aac7f70
- #define Data1_IGetOleObject 0x8A701DA0
- #define Data1_IGetVBAObject 0x91733A60
- #define Data1_IInternalMoniker 0x00000011
- #define Data1_ILockBytes 0x0000000a
- #define Data1_IMalloc 0x00000002
- #define Data1_IMarshal 0x00000003
- #define Data1_IMessageFilter 0x00000016
- #define Data1_IMoniker 0x0000000f
- #define Data1_IMsoCommandTarget 0xb722bccb
- #define Data1_IMsoDocument 0xb722bcc5
- #define Data1_IMsoInPlaceComponent 0x000C0604
- #define Data1_IMsoView 0xb722bcc6
- #define Data1_InternalTypeInfo 0x55930448
- #define Data1_IOleAdviseHolder 0x00000111
- #define Data1_IOleCache 0x0000011e
- #define Data1_IOleCache2 0x00000128
- #define Data1_IOleCacheControl 0x00000129
- #define Data1_IOleClientSite 0x00000118
- #define Data1_IOleContainer 0x0000011b
- #define Data1_IOleControl 0xb196b288
- #define Data1_IOleControlSite 0xb196b289
- #define Data1_IOleInPlaceActiveObject 0x00000117
- #define Data1_IOleInPlaceFrame 0x00000116
- #define Data1_IOleInPlaceObject 0x00000113
- #define Data1_IOleInPlaceObject2 0x1c2056cc
- #define Data1_IOleInPlacePaint 0x3af24291
- #define Data1_IOleInPlaceSite 0x00000119
- #define Data1_IOleInPlaceSite2 0x1c2056cd
- #define Data1_IOleInPlaceUIWindow 0x00000115
- #define Data1_IOleItemContainer 0x0000011c
- #define Data1_IOleLink 0x0000011d
- #define Data1_IOleManager 0x0000011f
- #define Data1_IOleObject 0x00000112
- #define Data1_IOlePresObj 0x00000120
- #define Data1_IOleWindow 0x00000114
- #define Data1_IPSFactory 0x00000009
- #define Data1_IPSFactoryBuffer 0xd5f569d0
- #define Data1_IParseDisplayName 0x0000011a
- #define Data1_IPerPropertyBrowsing 0x376bd3aa
- #define Data1_IPersist 0x0000010c
- #define Data1_IPersistFile 0x0000010b
- #define Data1_IPersistPropertyBag 0x37D84F60
- #define Data1_IPersistStorage 0x0000010a
- #define Data1_IPersistStream 0x00000109
- #define Data1_IPersistStreamInit 0x7fd52380
- #define Data1_IPicture 0x7bf80980
- #define Data1_IPictureDisp 0x7bf80981
- #define Data1_IPropertyBag 0x55272A00
- #define Data1_IPropertyFrame 0xb196b28a
- #define Data1_IPropertyNotifySink 0x9bfbbc02
- #define Data1_IPropertyPage 0xb196b28d
- #define Data1_IPropertyPage2 0x01e44665
- #define Data1_IPropertyPageSite 0xb196b28c
- #define Data1_IProvideClassInfo 0xb196b283
- #define Data1_IProxy 0x00000027
- #define Data1_IProxyManager 0x00000008
- #define Data1_IQuickActivate 0x8E673D70
- #define Data1_IRootStorage 0x00000012
- #define Data1_IRpcChannel 0x00000004
- #define Data1_IRpcChannelBuffer 0xd5f56b60
- #define Data1_IRpcProxy 0x00000007
- #define Data1_IRpcProxyBuffer 0xd5f56a34
- #define Data1_IRpcStub 0x00000005
- #define Data1_IRpcStubBuffer 0xd5f56afc
- #define Data1_IRunnableObject 0x00000126
- #define Data1_IRunningObjectTable 0x00000010
- #define Data1_IServiceProvider 0x6d5140c1
- #define Data1_ISimpleFrameSite 0x742b0e01
- #define Data1_ISpecifyPropertyPages 0xb196b28b
- #define Data1_IStdMarshalInfo 0x00000018
- #define Data1_IStorage 0x0000000b
- #define Data1_IStream 0x0000000c
- #define Data1_IStub 0x00000026
- #define Data1_IStubManager 0x00000006
- #define Data1_ISupportErrorInfo 0xdf0b3d60
- #define Data1_ITypeComp 0x00020403
- #define Data1_ITypeInfo 0x00020401
- #define Data1_ITypeLib 0x00020402
- #define Data1_IUnknown 0x00000000
- #define Data1_IVbaPrint 0x000204F0
- #define Data1_IVBControl 0xFCFB3D26
- #define Data1_IVBDDE 0xCC867200
- #define Data1_IVBDDESite 0xD856BCC0
- #define Data1_IVBDSC 0x1ab42240
- #define Data1_IVBGetControl 0x40A050A0
- #define Data1_IViewObject 0x0000010d
- #define Data1_IViewObject2 0x00000127
- #define Data1_IViewObject3 0x3af24292
- #define Data1_IWeakRef 0x0000001a
-
-
- #define QI_INHERITS(pObj, itf) \
- case Data1_##itf: \
- if(DO_GUIDS_MATCH(riid, IID_##itf)) \
- { \
- *ppvObjOut = (void *)(itf *)pObj; \
- } \
- break;
-